1. Field of the Description
The present description relates, in general, to legged robots (e.g., biped humanoid robots or other legged robots such as quadrupeds) that are implemented as floating-base humanoid robots (e.g., with no link or attachment to a support) and to control of force-controlled joints of such robots. More particularly, the present description relates to methods for controlling floating-base humanoid robots using human or other motion, which may include motions that are difficult or impossible for the robot to perform, as an input reference motion (or a motion to be performed or copied by the robot) and to robots operating with a controller implementing such control methods.
2. Relevant Background
A biped humanoid robot is a robot with an appearance based on that of the human body. Humanoid robots have been designed for providing interaction with various environments such as tools and machines that were made for humans and often are adapted for safely and effectively interacting with human beings. In general, humanoid robots have a torso with a head, two arms, and two legs each with some form of foot such that the robot can walk on planar surfaces, climb steps, and so on (e.g., these humanoid robots are “bipeds” as are humans). Humanoid robots may be formed with many rigid links that are interconnected by joints that are operated or positioned by applying a force or torque to each joint to move and position a robot. Similarly, other legged robots such as those with three, four, or more legs also may walk utilizing force-controlled movement of their legs. All of these robots may be implemented as floating-base robots (e.g., with no link or attachment to a support)
In order to interact with human environments, humanoid robots require safe and compliant control of the force-controlled joints. In this regard, a controller is provided for each robot that has to be programmed to determine desired motions and output forces (contact forces) and, in response, to output joint torques to effectively control movement and positioning of the humanoid robot. However, it has often proven difficult to achieve desired results with force-controlled robots because while performing a task in a complex environment the robot may encounter uneven ground or steps, static and dynamic obstacles, and even humans. The robot has to continue to be balanced as it stands in one location and also as it steps and moves within the environment. Humanoid robots are expected by many to work with humans in home and office environments. Hence, it would be more desirable for such robots to have human-like motions so that human co-workers can easily infer the robot's intentions and predict future movements for safe and smooth interactions.
To date, it has been difficult to generate human-like motions through optimization or control because no clear criterion is known for coordinating all the joints such that the resulting motions look human-like. For example, many locomotion controllers for humanoid robots are based on simple models that cannot describe their full-body motion. As a result, the motions of the robot usually do not accurately replicate those of a human. In computer graphics, some methods have successfully generated human-like walking and running motions on virtual characters, but it has proven difficult to extend these motions to stylized motions of a humanoid or other floating-base robot.
Since a humanoid robot body is designed to resemble the human body, controlling these robots to mimic human motions seems to be a natural and promising way to endow humanoid robots with human-like movements. However, due to differences in the kinematic and dynamic properties of humans and humanoid robots, a human motion can be infeasible for a robot to perform, and the robot may lose its balance and even fall over trying to replicate a motion that can readily be carried out by a human. This can make it problematic to use human motion as a reference motion for input to a robot controller.
To address the fact that even humanoid robots differ from a human body, human motions are usually modified or adapted to better match a particular floating-base humanoid robot's kinematics and dynamics to maintain balance through the motion. There are a number of issues with this control approach. For example, the modified motion may not satisfy other constraints such as a footstep location in locomotion. As another example issue, the modified motion may no longer appear human-like. Further, it may be undesirable to modify the human motions because these may be a carefully choreographed set of poses that need to be closely duplicated by the robot such as movements in close proximity to other fixed objects or obstacles or other moving objects (e.g., other robots, human actors, and the like), and the modified motion may result in a collision with one or more of these objects.
Hence, there remains a need for a method of controlling floating-base robots, such as humanoid robots, so as to better mimic or copy reference motions, such as human motions, while retaining the robot's balance and, typically, without producing collisions with nearby obstacles in the robot's operating environment. It is preferable that this control method (and robots implementing such a control method) be designed to closely mimic or copy each movement or action within the reference motion in contrast to other techniques that modify the motions to suit the robot.